package demo04;

import java.util.function.Predicate;

/*
 *  public interface Predicate<T>：判断型接口
 *  default Predicate<T> and(Predicate<? super T> other)：Predicate的默认方法，用于将两个Predicate对象判断条件合并
 *  and()方法代表并且，结果需要满足两个Predicate对象判断条件同时通过，才会返回true，否则都为false
 */
public class Demo02PredicateAnd {
    public static void main(String[] args) {
        System.out.println("字符串是否同时包含“H”和“W”：" +
                // 使用contains()方法判断指定字符串内是否包含字符串"H"和字符串"W"
                chickString("Hello World", string -> string.contains("H"), string -> string.contains("W"))); // true
    }

    public static boolean chickString(String string, Predicate<String> predicate1, Predicate<String> predicate2) {
        return predicate1.and(predicate2).test(string); // 如果predicate1判断结果为true，predicate2判断结果也为true，则结果为true，否则都为false
    }
}
